package cn.rkylin.oms.order.service;

import cn.rkylin.oms.item.domain.SkuGroup;
import cn.rkylin.oms.item.vo.SkuVO;
import cn.rkylin.oms.order.domain.EcOrder;
import cn.rkylin.oms.order.domain.EcTrade;

import java.util.List;
import java.util.Map;

/**
 * 平台订单服务层接口
 *
 * @author wangxing
 * @version 1.0
 * @created 2017.10.09
 */
public interface IOrderService {


    /**
     * 获取待进系统的平台订单数据集
     *
     * @param reqMap
     * @return
     * @throws Exception
     */
    public List<EcTrade> selectTradeList(Map<String, String> reqMap) throws Exception;

    /**
     * 获取平台订单商品明细数据集
     *
     * @param reqMap
     * @return
     * @throws Exception
     */
    public List<EcOrder> selectTradeOrderList(Map<String, Object> reqMap) throws Exception;

    /**
     * 获取平台订单商品明细对应平台商品信息数据集
     *
     * @param reqMap
     * @return
     * @throws Exception
     */
    public List<SkuVO> selectItemSkuList(Map<String, Object> reqMap) throws Exception;

    /**
     * 获取平台订单商品明细对应平台商品组合商品信息数据集
     *
     * @param reqMap
     * @return
     * @throws Exception
     */
    public List<SkuGroup> selectItemSkuGroupList(Map<String, Object> reqMap) throws Exception;

    /**
     * 更新平台订单状态(进系统标识状态)
     *
     * @param record
     * @return
     * @throws Exception
     */
    public int updateByPrimaryKeySelectiveEcTrade(EcTrade record) throws Exception;

    /**
     * 获取状态变化的平台订单数据集(用于更新系统订单状态)
     *
     * @param reqMap
     * @return
     * @throws Exception
     */
    public List<EcTrade> selectChangeTradeList(Map<String, String> reqMap) throws Exception;

}